home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / bash / bash_110 / mint / bash110s.zoo / bash-1.10 / machines.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-10-03  |  28.6 KB  |  1,076 lines

  1. /* machines.h --
  2.    Included file in the makefile that gets run through Cpp.  This file
  3.    tells which machines have what features based on the unique machine
  4.    identifier present in Cpp. */
  5.  
  6. /* **************************************************************** */
  7. /*                                                                  */
  8. /*                Global Assumptions (true for most systems).       */
  9. /*                                                                  */
  10. /* **************************************************************** */
  11.  
  12. /* We make some global assumptions here.  This can be #undef'ed in
  13.    various machine specific entries. */
  14.  
  15. /* If this file is being processed with Gcc, then the user has Gcc. */
  16. #if defined (__GNUC__)
  17. #  if !defined (HAVE_GCC)
  18. #    define HAVE_GCC
  19. #  endif /* HAVE_GCC */
  20. #endif /* __GNUC__ */
  21.  
  22. /* Assume that all machines have the getwd () system call.  We unset it
  23.    for USG systems. */
  24. #define HAVE_GETWD
  25.  
  26. /* Most (but not all) systems have a good, working version of dup2 ().
  27.    For systems that don't have the call (HP/UX), and for systems
  28.    that don't set the open-on-exec flag for the dup'ed file descriptors,
  29.    (Sequents running Dynix, Ultrix), #undef HAVE_DUP2 in the machine
  30.    description. */
  31. #define HAVE_DUP2
  32.  
  33. /* Every machine that has Gcc has alloca as a builtin in Gcc.  If you are
  34.    compiling Bash without Gcc, then you must have alloca in a library,
  35.    in your C compiler, or be able to assemble or compile the alloca source
  36.    that we ship with Bash. */
  37. #define HAVE_ALLOCA
  38.  
  39. /* We like most machines to use the GNU Malloc routines supplied in the
  40.    source code because they provide high quality error checking.  On
  41.    some machines, our malloc () cannot be used (because of library
  42.    conflicts, for example), and for those, you should specifically
  43.    #undef USE_GNU_MALLOC in the machine description. */
  44. #define USE_GNU_MALLOC
  45.  
  46. /* **************************************************************** */
  47. /*                                    */
  48. /*            Sun Microsystems Machines                  */
  49. /*                                    */
  50. /* **************************************************************** */
  51.  
  52. #if defined (sun)
  53.  
  54. /* We aren't currently using GNU Malloc on Suns because of a bug in Sun's
  55.    YP which bites us when Sun free ()'s an already free ()'ed address.
  56.    When Sun fixes their YP, we can start using our winning malloc again. */
  57. #  undef USE_GNU_MALLOC
  58.  
  59. /* Most Sun systems have signal handler functions that are void. */
  60. #  define VOID_SIGHANDLER
  61.  
  62. #  if defined (mc68010)
  63. #    define sun2
  64. #  endif
  65. #  if defined (mc68020)
  66. #    define sun3
  67. #  endif
  68. #  if defined (sparc)
  69. #    define sun4
  70. #  endif
  71. #  if defined (i386)
  72. #    define Sun386i
  73. #  endif
  74. #if defined (HAVE_SHARED_LIBS)
  75. #  define M_OS SunOS4
  76. #  define SunOS4_SYSDEP_CFLAGS -DBSD_GETPGRP
  77. #else
  78. #  if !defined (sparc)
  79. #     undef VOID_SIGHANDLER
  80. #  endif
  81. #  define M_OS SunOS3
  82. #endif
  83. #endif /* sun */
  84.  
  85. /* ************************ */
  86. /*                */
  87. /*        Sun2        */
  88. /*                */
  89. /* ************************ */
  90. #if defined (sun2)
  91. #define M_MACHINE "sun2"
  92. #define HAVE_SIGLIST
  93. #define HAVE_SETLINEBUF
  94. #define HAVE_VPRINTF
  95. #define HAVE_MULTIPLE_GROUPS
  96. #endif /* sun2 */
  97.  
  98. /* ************************ */
  99. /*                */
  100. /*        Sun3        */
  101. /*                */
  102. /* ************************ */
  103. #if defined (sun3)
  104. #define M_MACHINE "sun3"
  105. #if defined (SunOS4_SYSDEP_CFLAGS)
  106. #  define SYSDEP_CFLAGS SunOS4_SYSDEP_CFLAGS
  107. #endif /* SunOS4 */
  108. #define HAVE_SIGLIST
  109. #define HAVE_SETLINEBUF
  110. #define HAVE_VPRINTF
  111. #define HAVE_MULTIPLE_GROUPS
  112. #endif /* sun3 */
  113.  
  114. /* ************************ */
  115. /*                */
  116. /*        Sparc        */
  117. /*                */
  118. /* ************************ */
  119. #if defined (sun4)
  120. #define M_MACHINE "sparc"
  121. #if defined (SunOS4_SYSDEP_CFLAGS)
  122. #  define SYSDEP_CFLAGS SunOS4_SYSDEP_CFLAGS
  123. #endif /* SunOS4 */
  124. #define HAVE_SIGLIST
  125. #define HAVE_SETLINEBUF
  126. #define HAVE_VPRINTF
  127. #define HAVE_MULTIPLE_GROUPS
  128. #endif /* sparc */
  129.  
  130. /* ************************ */
  131. /*                */
  132. /*        Sun386i        */
  133. /*                */
  134. /* ************************ */
  135. #if defined (Sun386i)
  136. #define done386
  137. #define M_MACHINE "Sun386i"
  138. #if defined (SunOS4_SYSDEP_CFLAGS)
  139. #  define SYSDEP_CFLAGS SunOS4_SYSDEP_CFLAGS
  140. #endif /* SunOS4 */
  141. #define HAVE_SIGLIST
  142. #define HAVE_SETLINEBUF
  143. #define HAVE_VPRINTF
  144. #define HAVE_MULTIPLE_GROUPS
  145. #endif /* Sun386i */
  146.  
  147. /* **************************************************************** */
  148. /*                                    */
  149. /*            DEC Machines (vax, decstations)           */
  150. /*                                    */
  151. /* **************************************************************** */
  152.  
  153. /* ************************ */
  154. /*                */
  155. /*        Ultrix        */
  156. /*                */
  157. /* ************************ */
  158. #if defined (ultrix)
  159. #if defined (MIPSEL)
  160. #  undef HAVE_ALLOCA_H
  161. #  define M_MACHINE "MIPSEL"
  162. #  if !defined (HAVE_GCC)
  163. #    define MIPS_CFLAGS -Wf,-XNl3072
  164. #  endif
  165. #else /* !MIPSEL */
  166. #  define M_MACHINE "vax"
  167. #endif /* MIPSEL */
  168. #if defined (MIPS_CFLAGS)
  169. #  define SYSDEP_CFLAGS -DBSD_GETPGRP MIPS_CFLAGS
  170. #else
  171. #  define SYSDEP_CFLAGS -DBSD_GETPGRP
  172. #endif
  173. #define M_OS Ultrix
  174. #define VOID_SIGHANDLER
  175. #define HAVE_SIGLIST
  176. #define HAVE_SETLINEBUF
  177. #define HAVE_VPRINTF
  178. #define HAVE_MULTIPLE_GROUPS
  179. #undef HAVE_DUP2
  180. #endif /* ultrix */
  181.  
  182. /* ************************ */
  183. /*                */
  184. /*    VAX 4.3 BSD        */
  185. /*                */
  186. /* ************************ */
  187. #if defined (vax) && !defined (ultrix)
  188. #define M_MACHINE "vax"
  189. #define M_OS Bsd
  190. #define HAVE_SETLINEBUF
  191. #define HAVE_SIGLIST
  192. #define HAVE_MULTIPLE_GROUPS
  193. #endif /* vax && !ultrix */
  194.  
  195. /* **************************************** */
  196. /*                        */
  197. /*        SGI Iris/IRIX                */
  198. /*                        */
  199. /* **************************************** */
  200. #if defined (sgi)
  201. #  if defined (Irix3)
  202. #    define M_OS "Irix3"
  203. #    define MIPS_CFLAGS -real_frameptr -Wf,-XNl3072
  204. #    undef HAVE_ALLOCA
  205. #  endif /* Irix3 */
  206. #  if defined (Irix4)
  207. #    define M_OS "Irix4"
  208. #    define MIPS_CFLAGS -Wf,-XNl3072
  209. #  endif /* Irix4 */
  210. #define M_MACHINE "sgi"
  211. #define HAVE_MULTIPLE_GROUPS
  212. #define VOID_SIGHANDLER
  213. #define HAVE_SIGLIST
  214. #define HAVE_SETLINEBUF
  215. #define HAVE_VPRINTF
  216. #define REQUIRED_LIBRARIES -lsun
  217. #if defined (HAVE_GCC) || !defined (mips)
  218. #  undef MIPS_CFLAGS
  219. #  define MIPS_CFLAGS
  220. #endif /* HAVE_GCC || !mips */
  221. #define SYSDEP_CFLAGS -DUSG -DPGRP_PIPE MIPS_CFLAGS
  222. #undef HAVE_GETWD
  223. #endif  /* sgi */
  224.  
  225. /* ************************ */
  226. /*                */
  227. /*        Sony        */
  228. /*                */
  229. /* ************************ */
  230. #if defined (sony)
  231. #if defined (MIPSEB)
  232. #  define M_MACHINE "MIPSEB"
  233. #else
  234. #  define M_MACHINE "sony"
  235. #endif
  236.  
  237. #if defined (SYSTYPE_SYSV) || defined (USGr4)
  238. #  define M_OS USG
  239. #  undef HAVE_GETWD
  240. #  define HAVE_VPRINTF
  241. #  define VOID_SIGHANDLER
  242.    /* Alloca requires either Gcc or cc with libucb.a. */
  243. #  if !defined (HAVE_GCC)
  244. #    define REQUIRED_LIBRARIES -lc /usr/ucblib/libucb.a
  245. #  endif /* !HAVE_GCC */
  246. #  if defined (MIPSEB)
  247. #    if !defined (HAVE_GCC)
  248. #      define SYSDEP_CFLAGS -Wf,-XNl3072 -DUSGr4
  249. #    else
  250. #      define SYSDEP_CFLAGS -DUSGr4
  251. #    endif /* HAVE_GCC */
  252. #  else
  253. #    define SYSDEP_CFLAGS -DUSGr4
  254. #  endif /* MIPSEB */
  255. #else
  256. #  define M_OS Bsd
  257. #endif /* SYSTYPE_SYSV */
  258. #define HAVE_SIGLIST
  259. #define HAVE_SETLINEBUF
  260. #define HAVE_MULTIPLE_GROUPS
  261. #endif /* sony */
  262.  
  263. /* ******************************** */
  264. /*                    */
  265. /*       MIPS RISC/os            */
  266. /*                    */
  267. /* ******************************** */
  268.  
  269. /* Notes on compiling with "make":
  270.  
  271.    * Place /bsd43/bin in your PATH before /bin.
  272.    * Use `$(CC) -E' instead of `/lib/cpp' in Makefile.
  273. */
  274. #if defined (mips) && !defined (M_MACHINE)
  275.  
  276. #if defined (MIPSEB)
  277. #  define M_MACHINE "MIPSEB"
  278. #else
  279. #  if defined (MIPSEL)
  280. #    define M_MACHINE "MIPSEL"
  281. #  else
  282. #    define M_MACHINE "mips"
  283. #  endif /* MIPSEL */
  284. #endif /* MIPSEB */
  285.  
  286. #define M_OS Bsd
  287.  
  288. /* Special things for machines from MIPS Co. */
  289. #define mips_CFLAGS -DOPENDIR_NOT_ROBUST -DPGRP_PIPE
  290.  
  291. #if defined (HAVE_GCC)
  292. #  define SYSDEP_CFLAGS mips_CFLAGS
  293. #else
  294. #  define SYSDEP_CFLAGS -Wf,-XNl3072 -systype bsd43 mips_CFLAGS
  295. #endif /* !HAVE_GCC */
  296. #define HAVE_SIGLIST
  297. #define HAVE_SETLINEBUF
  298. #define HAVE_VPRINTF
  299. #define HAVE_MULTIPLE_GROUPS
  300. /* This is actually present but unavailable in the BSD universe? */
  301. #undef HAVE_UNISTD_H
  302. #if !defined (HAVE_RESOURCE)
  303. #  define HAVE_RESOURCE
  304. #endif
  305. /* Appears not to work correctly, so why use it? */
  306. #undef HAVE_WAIT_H
  307. #endif /* mips */
  308.  
  309. /* ************************ */
  310. /*                */
  311. /*      Pyramid        */
  312. /*                */
  313. /* ************************ */
  314. #if defined (pyr)
  315. #define M_MACHINE "Pyramid"
  316. #define M_OS Bsd
  317. #if !defined (HAVE_GCC)
  318. #  undef HAVE_ALLOCA
  319. #endif /* HAVE_GCC */
  320. #define HAVE_SIGLIST
  321. #define HAVE_SETLINEBUF
  322. #define HAVE_VPRINTF
  323. #define HAVE_MULTIPLE_GROUPS
  324. #endif /* pyr */
  325.  
  326. /* ************************ */
  327. /*                */
  328. /*        IBMRT        */
  329. /*                */
  330. /* ************************ */
  331. /* Notes:  Compiling with pcc seems to work better than compiling with
  332.    the hc compiler.  I had problems when compiling with hc with alloca,
  333.    even though the -ma flag was defined.  (bfox) */
  334. #if defined (ibm032)
  335. #define M_MACHINE "IBMRT"
  336. #define M_OS Bsd
  337. #define HAVE_SIGLIST
  338. #define HAVE_SETLINEBUF
  339. /* Some systems cannot find vprintf at load time. */
  340. /* #define HAVE_VPRINTF */
  341. /* Alloca requires either gcc or pcc with -ma in SYSDEP_CFLAGS. */
  342. #if !defined (HAVE_GCC)
  343. #  define SYSDEP_CFLAGS -ma -U__STDC__
  344. #endif
  345. #define HAVE_MULTIPLE_GROUPS
  346. /* #define USE_GNU_TERMCAP */
  347. #endif /* ibm032 */
  348.  
  349.  
  350. /* **************************************************************** */
  351. /*                                    */
  352. /*      All Intel 386 Processor Machines are Defined Here!        */
  353. /*                                    */
  354. /* **************************************************************** */
  355.  
  356. #if defined (i386)
  357.  
  358. /* **************************************************************** */
  359. /*                                                                  */
  360. /*                       Sequent Machines                           */
  361. /*                                                                  */
  362. /* **************************************************************** */
  363.  
  364. /* Sequent Symmetry running Dynix/ptx (System V.3.2) */
  365. #  if !defined (done386) && defined (_SEQUENT_)
  366. #    define done386
  367. #    define M_MACHINE "Symmetry"
  368. #    define M_OS USG
  369. #    define SYSDEP_CFLAGS -DUSGr3
  370. #    define HAVE_VPRINTF
  371. #    define VOID_SIGHANDLER
  372. #    define HAVE_ALLOCA
  373. #    define REQUIRED_LIBRARIES -lPW -lseq
  374. #    undef HAVE_GETWD
  375. #    undef HAVE_RESOURCE
  376. #  endif /* _SEQUENT_ */
  377.  
  378. /* Sequent Symmetry running Dynix (4.2 BSD) */
  379. #  if !defined (done386) && defined (sequent)
  380. #    define done386
  381. #    define M_MACHINE "Symmetry"
  382. #    define M_OS Bsd
  383. #    define SYSDEP_CFLAGS -DCPCC
  384. #    define HAVE_SETLINEBUF
  385. #    define HAVE_SIGLIST
  386. #    define HAVE_MULTIPLE_GROUPS
  387. #    undef HAVE_DUP2
  388. #  endif /* Sequent 386 */
  389.  
  390. /* Generic 386 clone running Mach (4.3 BSD-compatible). */
  391. #  if !defined (done386) && defined (MACH)
  392. #    define done386
  393. #    define M_MACHINE "i386"
  394. #    define M_OS Bsd
  395. #    define HAVE_SETLINEBUF
  396. #    define HAVE_SIGLIST
  397. #    define HAVE_MULTIPLE_GROUPS
  398. #  endif /* i386 && MACH */
  399.  
  400. /* AIX/PS2 1.2 for the 386. */
  401. #  if !defined (done386) && defined (aixpc)
  402. #    define done386
  403. #    define M_MACHINE "aixpc"
  404. #    define M_OS AIX
  405. #    define HAVE_VPRINTF
  406. #    define VOID_SIGHANDLER
  407. #    define SYSDEP_CFLAGS -D_BSD
  408. #    define REQUIRED_LIBRARIES -lbsd
  409. #    define HAVE_MULTIPLE_GROUPS
  410. #    if !defined (HAVE_GCC)
  411. #      undef HAVE_ALLOCA
  412. #      undef HAVE_ALLOCA_H
  413. #    endif /* !HAVE_GCC */
  414. #  endif /* AIXPC i386 */
  415.  
  416. /* System V Release 4 on the 386 */
  417. #  if !defined (done386) && defined (USGr4)
  418. #    define done386
  419. #    define M_MACHINE "i386"
  420. #    define M_OS USG
  421. #    define HAVE_SIGLIST
  422. #    define HAVE_VPRINTF
  423. #    define VOID_SIGHANDLER
  424.      /* Alloca requires either Gcc or cc with libucb.a */
  425. #    if !defined (HAVE_GCC)
  426. #      define REQUIRED_LIBRARIES -lc /usr/ucblib/libucb.a
  427. #    endif /* !HAVE_GCC */
  428. #    define HAVE_MULTIPLE_GROUPS
  429. #    define SYSDEP_CFLAGS -DUSGr4
  430. #    undef HAVE_GETWD
  431. #  endif /* System V Release 4 on i386 */
  432.  
  433. /* 386 box running Interactive Unix 2.2. */
  434. #  if !defined (done386) && defined (isc386)
  435. #    define done386
  436. #    define M_MACHINE "isc386"
  437. #    define M_OS USG
  438. #    define HAVE_VPRINTF
  439. #    define VOID_SIGHANDLER
  440. #    if !defined (HAVE_GCC)
  441. #      define REQUIRED_LIBRARIES -lPW
  442. #    endif
  443. #    if defined (NOTDEF)
  444.        /* libcposix.a contains putc, getc, fileno. */
  445. #      define REQUIRED_LIBRARIES -lcposix
  446. #    endif /* NOTDEF */
  447. #    undef HAVE_GETWD
  448.      /* <sys/types.h> uses mode_t, but doesn't define it unless
  449.     _POSIX_SOURCE is defined.  But when _POSIX_SOURCE is defined,
  450.     <signal.h> tries to use pid_t without including <sys/types.h>!
  451.     What a mess.
  452.  
  453.     ISC's <sys/fcntl.h> doesn't want to define O_NDELAY if __STDC__
  454.     is defined.  We fix that here also.  */
  455. #    if defined (__STDC__) || defined (HAVE_GCC)
  456. #      define SYSDEP_CFLAGS -DUSGr3 -D_POSIX_SOURCE \
  457.     -Dmode_t="unsigned short" -DO_NDELAY=O_NONBLOCK
  458. #    else
  459. #      define SYSDEP_CFLAGS -DUSGr3 -D_POSIX_SOURCE
  460. #    endif /* __STDC__ || HAVE_GCC */
  461.  
  462. #    if !defined (HAVE_GCC)
  463.        /* ISC's wait.h requires lots of POSIX junk.  Forget it. */
  464. #      undef HAVE_WAIT_H
  465. #    endif /* HAVE_GCC */
  466. #  endif /* isc386 */
  467.  
  468. /* Xenix386 machine. */
  469. #if !defined (done386) && defined (Xenix386)
  470. #  define done386
  471. #  define M_MACHINE "i386"
  472. #  define M_OS Xenix
  473. #  define SYSDEP_CFLAGS -DUSGr3
  474. #  define HAVE_VPRINTF
  475. #  define VOID_SIGHANDLER
  476. #  define ALLOCA_ASM x386-alloca.s
  477. #  define REQUIRED_LIBRARIES -lx
  478. #  undef HAVE_ALLOCA
  479. #endif /* Xenix386 */
  480.  
  481. /* SCO UNIX 3.2 chip@count.tct.com (Chip Salzenberg) */
  482. #  if !defined (done386) && defined (M_UNIX)
  483. #    define done386
  484. #    define M_MACHINE "i386"
  485. #    define M_OS SCO
  486. #    define SYSDEP_CFLAGS -DUSG -DUSGr3
  487. #    define HAVE_VPRINTF
  488. #    define VOID_SIGHANDLER
  489. #    define HAVE_MULTIPLE_GROUPS
  490. #    undef HAVE_GETWD
  491. #    undef HAVE_RESOURCE
  492. #  endif /* SCO Unix on 386 boxes. */
  493.  
  494. /* Assume a generic 386 running Sys V Release 3. */
  495. #  if !defined (done386)
  496. #    define done386
  497. #    define M_MACHINE "i386"
  498. #    define M_OS USG
  499. #    define SYSDEP_CFLAGS -DUSGr3
  500. #    define HAVE_VPRINTF
  501. #    define VOID_SIGHANDLER
  502.      /* Alloca requires either Gcc or cc with libPW.a */
  503. #    if !defined (HAVE_GCC)
  504. #      define REQUIRED_LIBRARIES -lPW
  505. #    endif /* !HAVE_GCC */
  506. #    undef HAVE_GETWD
  507. #  endif /* Generic i386 Box running Sys V release 3. */
  508. #endif /* All i386 Machines with an `i386' define in cpp. */
  509.  
  510.  
  511. /* **************************************************************** */
  512. /*                                    */
  513. /*              Gould 9000 - UTX/32 R2.1A                */
  514. /*                                    */
  515. /* **************************************************************** */
  516. #if defined (gould)        /* Maybe should be GOULD_PN ? */
  517. #define M_MACHINE "gould"
  518. #define M_OS Bsd
  519. #define HAVE_SIGLIST
  520. #define HAVE_SETLINEBUF
  521. #define HAVE_MULTIPLE_GROUPS
  522. #endif /* gould */
  523.  
  524. /* ************************ */
  525. /*                */
  526. /*        NeXT        */
  527. /*                */
  528. /* ************************ */
  529. #if defined (NeXT)
  530. #define M_MACHINE "NeXT"
  531. #define M_OS Bsd
  532. #define HAVE_VPRINTF
  533. #define HAVE_SIGLIST
  534. #define HAVE_MULTIPLE_GROUPS
  535. #define HAVE_STRERROR
  536. #define VOID_SIGHANDLER
  537. #undef USE_GNU_MALLOC
  538. #endif
  539.  
  540. /* ************************ */
  541. /*                */
  542. /*    hp9000 4.3 BSD        */
  543. /*                */
  544. /* ************************ */
  545. #if defined (hp9000) && !defined (hpux)
  546. #define M_MACHINE "hp9000"
  547. #define M_OS Bsd
  548. #undef HAVE_ALLOCA
  549. #define HAVE_SIGLIST
  550. #define HAVE_SETLINEBUF
  551. #define HAVE_MULTIPLE_GROUPS
  552. #endif /* hp9000 && !hpux */
  553.  
  554. /* ************************ */
  555. /*                */
  556. /*        hpux        */
  557. /*                */
  558. /* ************************ */
  559. #if defined (hpux)
  560. #define M_MACHINE "hpux"
  561.  
  562. /* This is for 6.2+ systems with job control. */
  563. #define M_OS HPUX
  564.  
  565. /* For HP-UX systems before 6.2, we don't have job control. */
  566. /* #undef M_OS */
  567. /* #define M_OS USG */
  568.  
  569. /* For HP-UX 7.0, we don't need the -lBSD. */
  570. #if defined (__hpux)
  571. #  define HPUX_70
  572. #endif
  573.  
  574. #if defined (HPUX_70)
  575. #  define SYSDEP_CFLAGS -DHPUX_70
  576. #  define REQUIRED_LIBRARIES -lPW
  577. #  undef HAVE_GETWD
  578. #else /* Not 7.0 OS version. */
  579. #  define REQUIRED_LIBRARIES -lPW -lBSD
  580. #endif /* __hpux */
  581.  
  582. #define HAVE_VPRINTF
  583. #define VOID_SIGHANDLER
  584. #define HAVE_MULTIPLE_GROUPS
  585. #define HAVE_STRERROR
  586. #endif /* hpux */
  587.  
  588. /* ************************ */
  589. /*                */
  590. /*        Xenix286        */
  591. /*                */
  592. /* ************************ */
  593. #if defined (Xenix286)
  594. #define M_MACHINE "i286"
  595. #define M_OS Xenix
  596. #undef HAVE_ALLOCA
  597. #define REQUIRED_LIBRARIES -lx
  598. #endif
  599.  
  600. /* Xenix 386 box not caught in i386 case above. */
  601. #if !defined (M_MACHINE) && defined (Xenix386)
  602. #  define M_MACHINE "i386"
  603. #  define M_OS Xenix
  604. #  define SYSDEP_CFLAGS -DUSGr3
  605. #  define HAVE_VPRINTF
  606. #  define VOID_SIGHANDLER
  607. #  define ALLOCA_ASM x386-alloca.s
  608. #  define REQUIRED_LIBRARIES -lx
  609. #  undef HAVE_ALLOCA
  610. #endif /* Xenix386 */
  611.  
  612. /* ************************ */
  613. /*                */
  614. /*        convex        */
  615. /*                */
  616. /* ************************ */
  617. #if defined (convex)
  618. #define M_MACHINE "convex"
  619. #define M_OS Bsd
  620. #undef HAVE_ALLOCA
  621. #define HAVE_SETLINEBUF
  622. #define HAVE_SIGLIST
  623. #define HAVE_MULTIPLE_GROUPS
  624. #endif /* convex */
  625.  
  626. /* ************************ */
  627. /*                */
  628. /*        AIX/RT        */
  629. /*                */
  630. /* ************************ */
  631. #if defined (aix) && !defined (aixpc)
  632. #define M_MACHINE "AIX"
  633. #define M_OS Bsd
  634. #undef HAVE_ALLOCA
  635. #define HAVE_VPRINTF
  636. #define HAVE_SIGLIST
  637. #define VOID_SIGHANDLER
  638. #define HAVE_MULTIPLE_GROUPS
  639. #define USE_TERMCAP_EMULATION
  640. #endif /* AIX */
  641.  
  642. /* **************************************** */
  643. /*                        */
  644. /*        IBM RISC 6000            */
  645. /*                        */
  646. /* **************************************** */
  647. #if defined (RISC6000) || defined (_IBMR2)
  648. #define M_MACHINE "RISC6000"
  649. #define M_OS "AIX"
  650. #undef HAVE_GETWD
  651. #undef HAVE_ALLOCA
  652. #define HAVE_SIGLIST
  653. #define HAVE_SETLINEBUF
  654. #define HAVE_VPRINTF
  655. #define VOID_SIGHANDLER
  656. #define USE_TERMCAP_EMULATION
  657. #define HAVE_MULTIPLE_GROUPS
  658. #define SYSDEP_CFLAGS -DNLS -DUSG
  659. #undef USE_GNU_MALLOC
  660. #endif /* RISC6000 */
  661.  
  662. /* **************************************** */
  663. /*                        */
  664. /*    u370 IBM AIX/370            */
  665. /*                        */
  666. /* **************************************** */
  667. #if defined (u370) || defined (_AIX370)
  668. #define M_MACHINE "AIX370"
  669. #define M_OS Bsd
  670. #define REQUIRED_LIBRARIES -lbsd
  671. #define HAVE_SETLINEBUF
  672. #define HAVE_VPRINTF
  673. #define SYSDEP_CFLAGS -D_BSD
  674. #define HAVE_MULTIPLE_GROUPS
  675. #define USE_TERMCAP_EMULATION
  676. #undef USE_GNU_MALLOC
  677. #endif /* u370 */
  678.  
  679. /* ************************ */
  680. /*                */
  681. /*        ATT 3B        */
  682. /*                */
  683. /* ************************ */
  684. #if defined (att3b) || defined (u3b2)
  685. #if defined (att3b)
  686. #  define M_MACHINE "att3b"
  687. #  define HAVE_SIGLIST
  688. #else
  689. #  define M_MACHINE "u3b2"
  690. #endif
  691. #define M_OS USG
  692. #undef HAVE_GETWD
  693. #define HAVE_VPRINTF
  694. #define VOID_SIGHANDLER
  695. /* For an AT&T Unix before V.3 take out the -DUSGr3 */
  696. #define SYSDEP_CFLAGS -DUSGr3
  697. /* Alloca requires either Gcc or cc with libPW.a. */
  698. #if !defined (HAVE_GCC)
  699. #  define REQUIRED_LIBRARIES -lPW
  700. #endif /* !HAVE_GCC */
  701. #endif /* att3b */
  702.  
  703. /* ************************ */
  704. /*                */
  705. /*        ATT 386        */
  706. /*                */
  707. /* ************************ */
  708. #if defined (att386)
  709. #define M_MACHINE "att386"
  710. #define M_OS USG
  711. #undef HAVE_GETWD
  712. /* Alloca requires either Gcc or cc with libPW.a. */
  713. #if !defined (HAVE_GCC)
  714. #  define REQUIRED_LIBRARIES -lPW
  715. #endif /* HAVE_GCC */
  716. #define HAVE_SIGLIST
  717. #define HAVE_VPRINTF
  718. #define VOID_SIGHANDLER
  719. /* For an AT&T Unix before V.3 take out the -DUSGr3 */
  720. #define SYSDEP_CFLAGS -DUSGr3
  721. #endif /* att386 */
  722.  
  723. /* ************************ */
  724. /*                */
  725. /*        Encore        */
  726. /*                */
  727. /* ************************ */
  728. #if defined (MULTIMAX)
  729. #  if defined (n16)
  730. #    define M_MACHINE "Multimax32k"
  731. #  else
  732. #    define M_MACHINE "Multimax"
  733. #  endif /* n16 */
  734. #  if defined (UMAXV)
  735. #    define M_OS USG
  736. #    define REQUIRED_LIBRARIES -lPW
  737. #    define SYSDEP_CFLAGS -DUSGr3
  738. #    define HAVE_VPRINTF
  739. #    define USE_TERMCAP_EMULATION
  740. #    define VOID_SIGHANDLER
  741. #  else
  742. #    if defined (CMU)
  743. #      define M_OS Mach
  744. #    else
  745. #      define M_OS Bsd
  746. #    endif /* CMU */
  747. #    define HAVE_SIGLIST
  748. #    define HAVE_STRERROR
  749. #    define HAVE_SETLINEBUF
  750. #  endif /* UMAXV */
  751. #  define HAVE_MULTIPLE_GROUPS
  752. #endif  /* MULTIMAX */
  753.  
  754. /* ******************************************** */
  755. /*                        */
  756. /*   Encore Series 91 (88K BCS w Job Control)    */
  757. /*                        */
  758. /* ******************************************** */
  759. #if defined (__m88k) && defined (__UMAXV__)
  760. #define M_MACHINE "Gemini"
  761. #define M_OS USG
  762. #define REQUIRED_LIBRARIES -lPW
  763. #define USE_TERMCAP_EMULATION
  764. #define HAVE_VPRINTF
  765. #define HAVE_MULTIPLE_GROUPS
  766. #define VOID_SIGHANDLER
  767. #define SYSDEP_CFLAGS -q ext=pcc -D_POSIX_JOB_CONTROL -D_POSIX_VERSION \
  768.               -Dmalloc=_malloc -Dfree=_free -Drealloc=_realloc
  769. #endif  /* m88k */
  770.  
  771. /* ************************ */
  772. /*                */
  773. /*        clipper        */
  774. /*                */
  775. /* ************************ */
  776. /* This is for the Orion 1/05 (A BSD 4.2 box based on a Clipper processor) */
  777. #if defined (clipper)
  778. #define M_MACHINE "clipper"
  779. #define M_OS Bsd
  780. #define HAVE_SETLINEBUF
  781. #define HAVE_MULTIPLE_GROUPS
  782. #endif  /* clipper */
  783.  
  784. /* ******************************** */
  785. /*                    */
  786. /*       is68k(Omron luna)        */
  787. /*                    */
  788. /* ******************************** */
  789. #if defined (is68k)
  790. #define M_MACHINE "is68k"
  791. #define M_OS Bsd
  792. #undef HAVE_ALLOCA
  793. #define HAVE_SIGLIST
  794. #define HAVE_SETLINEBUF
  795. #define HAVE_MULTIPLE_GROUPS
  796. #endif /* is68k */
  797.  
  798. /* **************************************** */
  799. /*                        */
  800. /*        Apollo/SR10.2/BSD4.3        */
  801. /*                        */
  802. /* **************************************** */
  803. /* This is for the Apollo DN3500 running SR10.2 BSD4.3 */
  804. #if defined (apollo)
  805. #define M_MACHINE "apollo"
  806. #define M_OS Bsd
  807. #define SYSDEP_CFLAGS -D_POSIX_VERSION -D_INCLUDE_BSD_SOURCE -D_INCLUDE_POSIX_SOURCE -DTERMIOS_MISSING -DBSD_GETPGRP
  808. #define HAVE_SIGLIST
  809. #define HAVE_SETLINEBUF
  810. #define HAVE_MULTIPLE_GROUPS
  811. #endif  /* apollo */
  812.  
  813. /* ************************ */
  814. /*                */
  815. /*    DG AViiON        */
  816. /*                */
  817. /* ************************ */
  818. /* This is for the DG AViiON box (runs DG/UX with both AT&T & BSD features.) */
  819. #if defined (__DGUX__) || defined (DGUX)
  820. #define M_MACHINE "AViiON"
  821. #define M_OS USG
  822. #undef HAVE_GETWD
  823. /* DG/UX 4.x comes standard with gcc */
  824. #define HAVE_GCC
  825. #if !defined (DGUX)        /* Must define -DDGUX because cpp doesn't. */
  826. #  define SYSDEP_CFLAGS \
  827.       -D_M88KBCS_SOURCE -D_M88KBCS_TARGET \
  828.       -D_POSIX_SOURCE -D_POSIX_JOB_CONTROL -DDGUX
  829. #else
  830. #  define SYSDEP_CFLAGS \
  831.     -D_M88KBCS_SOURCE -D_M88KBCS_TARGET -D_TARGETTING_DGUX -D_DGUX_SOURCE \
  832.         -D_POSIX_SOURCE -D_POSIX_JOB_CONTROL
  833. #endif /* !DGUX */
  834. #define USE_TERMCAP_EMULATION
  835. #define HAVE_MULTIPLE_GROUPS
  836. #define VOID_SIGHANDLER
  837. #undef USE_GNU_MALLOC
  838. #endif
  839.  
  840. /* ************************ */
  841. /*                */
  842. /*    Harris Night Hawk        */
  843. /*                */
  844. /* ************************ */
  845. /* This is for the Harris Night Hawk family. */
  846. #if defined (_CX_UX)
  847. #if defined (_M88K)
  848. # define M_MACHINE "nh4000"
  849. #else
  850. #  if defined (hcx)
  851. #    define M_MACHINE "nh2000"
  852. #  else
  853. #    if defined (gcx)
  854. #      define M_MACHINE "nh3000"
  855. #    endif
  856. #  endif
  857. #endif
  858. #define M_OS USG
  859. #define SYSDEP_CFLAGS -g -Xa -v -Dgetwd=bash_getwd -D_POSIX_SOURCE -D_POSIX_JOB_CONTROL
  860. #define USE_TERMCAP_EMULATION
  861. #define HAVE_VPRINTF
  862. #define HAVE_MULTIPLE_GROUPS
  863. #define VOID_SIGHANDLER
  864. #undef USE_GNU_MALLOC
  865. #undef HAVE_GETWD
  866. #endif
  867.  
  868. /* **************************************** */
  869. /*                        */
  870. /*            Tektronix                */
  871. /*                        */
  872. /* **************************************** */
  873. /* These are unproven as yet. */
  874. #if defined (Tek4132)
  875. #define M_MACHINE "Tek4132"
  876. #define M_OS Bsd
  877. #define HAVE_SIGLIST
  878. #define HAVE_SETLINEBUF
  879. #define HAVE_MULTIPLE_GROUPS
  880. #endif /* Tek4132 */
  881.  
  882. #if defined (Tek4300)
  883. #define M_MACHINE "Tek4300"
  884. #define M_OS Bsd
  885. #define HAVE_SIGLIST
  886. #define HAVE_SETLINEBUF
  887. #define HAVE_MULTIPLE_GROUPS
  888. #endif /* Tek4300 */
  889.  
  890. /* ************************ */
  891. /*                */
  892. /*     Sequent Balances     */
  893. /*       (Dynix 3.x)        */
  894. /* ************************ */
  895. #if defined (sequent) && !defined (M_MACHINE)
  896. #define M_MACHINE "Sequent"
  897. #define M_OS Bsd
  898. #undef HAVE_DUP2
  899. #define HAVE_SIGLIST
  900. #define HAVE_SETLINEBUF
  901. #define HAVE_MULTIPLE_GROUPS
  902. #endif /* sequent */
  903.  
  904. /* ****************************************** */
  905. /*                          */
  906. /*    NCR Tower 32, System V Release 3          */
  907. /*                          */
  908. /* ****************************************** */
  909. #if defined (tower32)
  910. #define M_MACHINE "tower32"
  911. #define M_OS USG
  912. #if !defined (HAVE_GCC)
  913. #  define REQUIRED_LIBRARIES -lPW
  914.    /* Disable stack/frame-pointer optimization, incompatible with alloca */
  915. #  define SYSDEP_CFLAGS -DUSGr3 -W2,-aat
  916. #else
  917. #  define SYSDEP_CFLAGS -DUSGr3
  918. #endif /* !HAVE_GCC */
  919. #define HAVE_VPRINTF
  920. #define USE_TERMCAP_EMULATION
  921. #define VOID_SIGHANDLER
  922. #undef HAVE_GETWD
  923. #endif /* tower32 */
  924.  
  925. /* ************************ */
  926. /*                */
  927. /*    Ardent Titan OS v2.2  */
  928. /*                */
  929. /* ************************ */
  930. #if defined (ardent)
  931. #define M_MACHINE "Ardent Titan"
  932. #define M_OS Bsd
  933. #define REQUIRED_LIBRARIES -43
  934. #define HAVE_SIGLIST
  935. #define HAVE_SETLINEBUF
  936. #if !defined (titan)
  937. #  define HAVE_MULTIPLE_GROUPS
  938. #endif
  939. #define SYSDEP_CFLAGS -43 -w
  940. #undef HAVE_ALLOCA
  941. #undef USE_GNU_MALLOC
  942. #endif /* ardent */
  943.  
  944. /* ************************ */
  945. /*                */
  946. /*      Stardent        */
  947. /*                */
  948. /* ************************ */
  949. #if defined (stardent) && !defined (M_MACHINE)
  950. #define M_MACHINE "Stardent"
  951. #define M_OS USG
  952. #undef HAVE_GETWD
  953. #undef HAVE_ALLOCA
  954. #define HAVE_SIGLIST
  955. #define USE_TERMCAP_EMULATION
  956. #define VOID_SIGHANDLER
  957. #endif /* stardent */
  958.  
  959. /* ************************ */
  960. /*                */
  961. /*    Concurrent        */
  962. /*                */
  963. /* ************************ */
  964. #if defined (concurrent)
  965. /* Use the BSD universe (`universe ucb') */
  966. #define M_MACHINE "Concurrent"
  967. #define M_OS Bsd
  968. #define HAVE_SIGLIST
  969. #define HAVE_SETLINEBUF
  970. #define HAVE_MULTIPLE_GROUPS
  971. #endif /* concurrent */
  972.  
  973.  
  974. /* **************************************************************** */
  975. /*                                                                  */
  976. /*             Honeywell Bull X20 (lele@idea.sublink.org)        */
  977. /*                                                                  */
  978. /* **************************************************************** */
  979. #if defined (hbullx20)
  980. #define M_MACHINE "Honeywell"
  981. #define M_OS USG
  982. #define SYSDEP_CFLAGS -DUSG
  983. /* Bull x20 needs -lposix for struct dirent. */
  984. #define REQUIRED_LIBRARIES -lPW -lposix
  985. #define HAVE_VPRINTF
  986. #define VOID_SIGHANDLER
  987. #define USE_TERMCAP_EMULATION
  988. #undef HAVE_GETWD
  989. #endif  /* hbullx20 */
  990.  
  991. /* ************************ */
  992. /*                */
  993. /*    Cadmus (tested once)  */
  994. /*                */
  995. /* ************************ */
  996. #if defined (cadmus) && !defined (M_MACHINE)
  997. #define M_MACHINE "cadmus"
  998. #define M_OS BrainDeath        /* By Far, the worst yet. */
  999. #define SYSDEP_CFLAGS -DUSG
  1000. #define HAVE_VPRINTF
  1001. #define VOID_SIGHANDLER
  1002. #define USE_TERMCAP_EMULATION
  1003. #undef HAVE_GETWD
  1004. #undef HAVE_ALLOCA
  1005. #endif  /* cadmus */
  1006.  
  1007. /* **************************************************************** */
  1008. /*                                    */
  1009. /*            Generic Entry                   */
  1010. /*                                    */
  1011. /* **************************************************************** */
  1012.  
  1013. /* Use this entry for your machine if it isn't represented here.  It
  1014.    is loosely based on a Vax running Bsd. */
  1015.  
  1016. #if !defined (M_MACHINE)
  1017. #define UNKNOWN_MACHINE
  1018. #endif
  1019.  
  1020. #ifdef UNKNOWN_MACHINE
  1021. #define M_MACHINE "UNKNOWN_MACHINE"
  1022. #define M_OS UNKNOWN_OS
  1023.  
  1024. /* Required libraries for building on this system. */
  1025. #define REQUIRED_LIBRARIES
  1026.  
  1027. /* Define HAVE_SIGLIST if your system has sys_siglist[]. */
  1028. #define HAVE_SIGLIST
  1029.  
  1030. /* Undef HAVE_ALLOCA if you are not using Gcc, and neither your library
  1031.    nor compiler has a version of alloca ().  In that case, we will use
  1032.    our version of alloca () in alloca.c */
  1033. /* #undef HAVE_ALLOCA */
  1034.  
  1035. /* Undef USE_GNU_MALLOC if there appear to be library conflicts, or if you
  1036.    especially desire to use your OS's version of malloc () and friends.  We
  1037.    reccommend against this because GNU Malloc has debugging code built in. */
  1038. #define USE_GNU_MALLOC
  1039.  
  1040. /* Define USE_GNU_TERMCAP if you want to use the GNU termcap library
  1041.    instead of your system termcap library. */
  1042. /* #define USE_GNU_TERMCAP */
  1043.  
  1044. /* Define HAVE_SETLINEBUF if your machine has the setlinebuf ()
  1045.    stream library call.  Otherwise, setvbuf () will be used.  If
  1046.    neither of them work, you can edit in your own buffer control
  1047.    based upon your machines capabilities. */
  1048. #define HAVE_SETLINEBUF
  1049.  
  1050. /* Define HAVE_VPRINTF if your machines has the vprintf () library
  1051.    call.  Otherwise, printf will be used.  */
  1052. #define HAVE_VPRINTF
  1053.  
  1054. /* Define HAVE_MULTIPLE_GROUPS if your OS allows you to be in multiple
  1055.    groups simultaneously and supports the `getgroups' system call. */
  1056. /* #define HAVE_MULTIPLE_GROUPS */
  1057.  
  1058. /* Define SYSDEP_CFLAGS to be the flags to cc that make your compiler
  1059.    work.  For example, `-ma' on the RT makes alloca () work. */
  1060. #define SYSDEP_CFLAGS
  1061.  
  1062. /* Define HAVE_STRERROR if your system supplies a definition for strerror ()
  1063.    in the C library, or a macro in a header file. */
  1064. /* #define HAVE_STRERROR */
  1065.  
  1066. /* If your system does not supply /usr/lib/libtermcap.a, but includes
  1067.    the termcap routines as a part of the curses library, then define
  1068.    this.  This is the case on some System V machines. */
  1069. /* #define USE_TERMCAP_EMULATION */
  1070.  
  1071. /* Define VOID_SIGHANDLER if your system's signal () returns a pointer to
  1072.    a function returning void. */
  1073. /* #define VOID_SIGHANDLER */
  1074.  
  1075. #endif  /* UNKNOWN_MACHINE */
  1076.